﻿using BonjourQuotation.ObjectModel.ErrorData;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BonjourQuotation.ObjectModel.BusinessData
{
    public class OperationHotelGridBData
    {
        public decimal? TotInv { get; set; }
        public decimal? TotInvCad { get; set; }
        public List<OperationHotelGridRowBData> Rows { get; set; }
        public List<OperationHotelGridSaveRowBData> SaveRows { get; set; }
        public List<OperationHotelVendorInfoBData> VendorInfo { get; set; }
        public const int TakeCount = 10;
        public int Count { get; set; }
        public Dictionary<int, string> Employee { get; set; }
        public Dictionary<int, string> GroupStatus { get; set; }
        public Dictionary<int, string> FilterGroupStatus { get; set; }
        public Dictionary<int, string> VendorStatus { get; set; }
        public Dictionary<int, string> FilterVendorStatus { get; set; }
        public Dictionary<int, string> PayMethod { get; set; }
        public Dictionary<int, string> GroupCode { get; set; }
        public Dictionary<int, string> FilterGroupCode { get; set; }
        public Dictionary<int, string> GroupName { get; set; }
        public Dictionary<int, string> FilterGroupName { get; set; }
        public Dictionary<int, string> CustomerCode { get; set; }
        public Dictionary<int, string> FilterCustomerCode { get; set; }
        public Dictionary<int, string> VendorName { get; set; }
        public Dictionary<int, string> FilterVendorName { get; set; }
        public Dictionary<int, string> DayofArrival { get; set; }
        public Dictionary<int, string> FilterDayofArrival { get; set; }
        public Dictionary<int, string> MonthofArrival { get; set; }
        public Dictionary<int, string> FilterMonthofArrival { get; set; }
        public List<string> ArrivalCity { get; set; }
        public List<string> FilterArrivalCity { get; set; }
        public List<string> VendorCity { get; set; }
        public List<string> FilterVendorCity { get; set; }
        public List<double?> EstRoomNumber { get; set; }
        public List<double?> FilterEstRoomNumber { get; set; }
        public ErrorBInfo Error { get; set; }
        // Search part
        
        public DateTime? SearchCheckInFromDate { get; set; }
        public DateTime? SearchCheckInToDate { get; set; }
        public DateTime? SearchCheckOutFromDate { get; set; }
        public DateTime? SearchCheckOutToDate { get; set; }
        public Dictionary<int, string> SearchCity { get; set; }
        public string SelectedSearchArrivalCity { get; set; }
        public string SelectedSearchDepartureCity { get; set; }
        public Dictionary<int, string> SearchNationality { get; set; }
        public int? SelectedSearchNationality { get; set; }
        public int? SelectedSearchStatus { get; set; }
        public string SearchCustomer { get; set; }
        public string SearchVendorName { get; set; }
        public string SearchGroupName { get; set; }
        public string SearchGroupCode { get; set; }
        public string GroupId { get; set; }
        public string SearchFlightNo { get; set; }
        public int SearchEmployeeID { get; set; }
    }
    public class OperationHotelGridRowBData
    {
        public int GroupID { get; set; }
        public string GroupSelStatus { get; set; }
        public string VendorSelStatus { get; set; }
        public int VendorID { get; set; }
        public int? NewVendorID { get; set; }
        public int? QuotaID { get; set; }
        public string GroupCode { get; set; }
        public string GroupName { get; set; }
        public string GroupBookedUnder { get; set; }
        public string Customer { get; set; }
        public int? EmployeeID { get; set; }
        public short? EstNumOfPerson { get; set; }
        public short NumOfPerson { get; set; }
        public DateTime? ArrivalDate { get; set; }
        public string ArrivalCity { get; set; }
        public DateTime? DepartureDate { get; set; }
        public string DepartureCity { get; set; }
       // public short? RoomCount { get; set; }  
        public string Nationality { get; set; }
        public string Note { get; set; }
        public string VendorName { get; set; }   
        public string VendorAddress { get; set; }
        public string VendorPhone { get; set; }
        public string VendorEmail { get; set; }
        public string VendorContractPath { get; set; }
        public string VendorGroupContractPath { get; set; }
        public string VendorContactName { get; set; }
        public string VendorCity { get; set; }
        public double? Tax { get; set; }
        public decimal? OccTax { get; set; }
        public short? Comp { get; set; }
        public decimal? Less { get; set; }
        public decimal? AllSerAmt { get; set; }
        public short? Pax { get; set; }
        public decimal? Luggage { get; set; }
        public decimal? ABF { get; set; }
        public decimal? CBF { get; set; }
        public decimal? Lunch { get; set; }
        public decimal? Dinner { get; set; }
        public bool? LuggageChecked { get; set; }
        public bool? ABFChecked { get; set; }
        public bool? CBFChecked { get; set; }
        public bool? LunchChecked { get; set; }
        public bool? DinnerChecked { get; set; }
        public DateTime CheckInDate { get; set; }
        public DateTime? CheckOutDate { get; set; }
        public short? EstNumRooms { get; set; }
        public decimal? QuotaRoom { get; set; }
        public double? QuotaTax { get; set; }
        public decimal? QuotaOccTax { get; set; }   
        public decimal? QuotaBrk { get; set; }     
        public decimal? QuotaLg { get; set; }
        public short? QuotaNight { get; set; }
        public string QuotaCurr { get; set; }
        public string QuotaVendorName { get; set; }  
        public string QuotaNote { get; set; }
        public DateTime? GroupPushedDate { get; set; }
        public DateTime? GroupPushedFileCompDate { get; set; }
        public double? CommissionPerc { get; set; }
        public string CommissionStatus { get; set; }
        public decimal? CommissionRecAmt { get; set; }
        public DateTime? CommissionRecDate { get; set; }
        public string CommissionCheckNum { get; set; }
        public decimal? CommissionCheckAmt { get; set; }
        public string AccountingMemo { get; set; }
        public string ClientBookingCode { get; set; }
        public decimal? ExtraCost { get; set; }
        public decimal? RefFromHotel { get; set; }
        public decimal? TotalHotelInv { get; set; }
        public decimal? TotalCharged { get; set; }
        public int SglCount { get; set; }
        public decimal? SglAmt { get; set; }
        public int DblCount { get; set; }
        public decimal? DblAmt { get; set; }
        public int TwnCount { get; set; }
        public decimal? TwnAmt { get; set; }
        public int TrpCount { get; set; }
        public decimal? TrpAmt { get; set; }
        public int QudCount { get; set; }
        public decimal? QudAmt { get; set; }
        public int DrvCount { get; set; }
        public decimal? DrvAmt { get; set; }
        public int GudCount { get; set; }
        public decimal? GudAmt { get; set; }
        public decimal? FirstPayAmt { get; set; }
        public string FirstPayMethod { get; set; }
        public DateTime? FirstPayDate { get; set; }
        public decimal? SecondPayAmt { get; set; }
        public string SecondPayMethod { get; set; }
        public DateTime? SecondPayDate { get; set; }
        public decimal? ThirdPayAmt { get; set; }
        public string ThirdPayMethod { get; set; }
        public DateTime? ThirdPayDate { get; set; }
    }
    public class OperationHotelVendorInfoBData
    {
        public int VendorID { get; set; }
        public string VendorName { get; set; }
        public string VendorCity { get; set; }
        public string VendorAddress { get; set; }
        public string VendorPhone { get; set; }
        public string VendorEmail { get; set; }
        public string VendorContactPerson { get; set; }
        public bool? IsFind { get; set; }
    }
    public class OperationHotelGridSaveRowBData
    {
        public int GroupID { get; set; }
        public int VendorID { get; set; }
        public int? NewVendorID { get; set; }
        public DateTime? ArrivalDate { get; set; }
        public DateTime? DepartureDate { get; set; }
        public int SelectedGroupStatus { get; set; }
        public int SelectedVendorStatus { get; set; }
        public int? EmployeeID { get; set; }
        public string ArrivalCity { get; set; }
        public string AccountingMemo { get; set; }
        public string ClientBookingCode { get; set; }
        public decimal? ExtraCost { get; set; }
        public decimal? RefundReceivedHotel { get; set; }
        public decimal? TotalInvoice { get; set; }
        public decimal? TotalCharged { get; set; }
        public decimal? FirstPayment { get; set; }
        public string FirstPaymentMethod { get; set; }
        public DateTime? FirstPaymentDate { get; set; }
        public decimal? SecondPayment { get; set; }
        public string SecondPaymentMethod { get; set; }
        public DateTime? SecondPaymentDate { get; set; }
        public decimal? ThirdPayment { get; set; }
        public string ThirdPaymentMethod { get; set; }
        public DateTime? ThirdPaymentDate { get; set; }
        public double? CommissionPerc { get; set; }
        public string CommissionStatus { get; set; }
        public decimal? CommissionRecAmt { get; set; }
        public DateTime? CommissionRecDate { get; set; }
        public string CommissionCheckNum { get; set; }
        public decimal? CommissionCheckAmt { get; set; }
        public decimal? Luggage { get; set; }
        public decimal? ABF { get; set; }
        public decimal? CBF { get; set; }
        public decimal? Lunch { get; set; }
        public decimal? Dinner { get; set; }
        public bool? LuggageChecked { get; set; }
        public bool? ABFChecked { get; set; }
        public bool? CBFChecked { get; set; }
        public bool? LunchChecked { get; set; }
        public bool? DinnerChecked { get; set; }
        public decimal? Tax { get; set; }
        public decimal? OccTax { get; set; }
        public decimal? SingleAmount { get; set; }
        public decimal? DoubleAmount { get; set; }
        public decimal? TwinAmount { get; set; }
        public decimal? TripleAmount { get; set; }
        public decimal? QuadAmount { get; set; }
        public decimal? GuideAmount { get; set; }
        public decimal? DriverAmount { get; set; }
        public short Comp { get; set; }
        public string Notes { get; set; }
        public string BookedUnder { get; set; }
    }
}
